// -- FILE ------------------------------------------------------------------
// name       : ISetting.cs
// created    : Jani Giannoudis - 2008.04.25
// language   : c#
// environment: .NET 2.0
// --------------------------------------------------------------------------

namespace RG.Common.Configuration
{

	// ------------------------------------------------------------------------
	public interface ISetting
	{

		// ----------------------------------------------------------------------
		ApplicationSettingsBase ApplicationSettings { get; set; }

		// ----------------------------------------------------------------------
		SettingScope Scope { get; }

		// ----------------------------------------------------------------------
		string Description { get; }

		// ----------------------------------------------------------------------
		bool ThrowOnErrorDeserializing { get; }

		// ----------------------------------------------------------------------
		bool ThrowOnErrorSerializing { get; }

		// ----------------------------------------------------------------------
		bool ThrowOnErrorSaving { get; }

		// ----------------------------------------------------------------------
		bool ThrowOnErrorLoading { get; }

		// ----------------------------------------------------------------------
		bool HasChanged { get; }

		// ----------------------------------------------------------------------
		void Load();

		// ----------------------------------------------------------------------
		void Save();

	} // interface ISetting

} // namespace RG.Common.Configuration
// -- EOF -------------------------------------------------------------------
